当前位置:flash课件吧→免费FLASH教程之三(含实例教程)新页面 新改版 新气象

题 目:利用套接字机制实现Flash和数据库连接

 

无论对于Java研发者还是.NET研发者来说,在Flash中创建一个数据库连接都不是件简单的事情。由于解决这一问题需要费不少的周折,所以本文中我们通过建立一个XMLSocket类来帮助实现这一技术。

  一、 简介

  对于一位具备传统型客户-服务器背景的研发人员来说,转入到ActionScript研发并把Flash连接到一个数据库肯定需要费不少的周折。在.NET或Java世界中,通过直接从应用程式中调用数据库,您仅需要打开一个到数据库的连接并且执行数据库操作即可;而在Flash情况下事情并不这么简单。在本文中,我将向您介绍解决这一问题的办法。

  即使在一个非传统型研发环境例如Flash中,进行数据库连接都是很必要的。例如,您可能想要存储一个游戏中的高分,或任何需要在会话间持续存储的用户信息。而且,对于灵活的数据库连接的需求也正在增长,因为现在已有越来越多的人基于Flash方案构建丰富的互连网应用程式。

  归纳来看,共有三种方式能够使一个Flash应用程式连接到数据库上:

   使用XMLConnector组件;

   使用XML和CGI的结合;

   使用XMLSocket类。

  必须清醒地认识到,没有直接的把Flash连接到一个数据库的方法;必须有一个应用程式来担当Flash和数据库的中介。上面描述的每个方法都使用了这种机制-每一种在实现方式上稍有不同且包含不同的Flash特征。

  第一种方法在Flash帮助中有良好的说明,在此不再多言。

  第二种方法使用在Flash一端的XML类和在服务器端的一个CGI应用程式的结合,他比较适合于网络应用不存在问题的情况下。这种方法使用一个POST HTTP请求来连接到应用程式服务器。有关此更好的解释,请参考Flash帮助资料(ActionScript参考指南>用外部数据工作>从远程源中发送和装载变量>使用XML类)。

  第三个方法(本文将集中讨论),因为某些原因,具备极少的文档可参考。然而,从一个程式员的角度来看,他却是提供最多的控制的方法。对于一位非Flash程式员来说,这也是最熟悉的数据库交互的比喻。根据Flash帮助信息,"XMLSocket…维持一打开的到服务器的连接,他允许服务器能够在没有一来自客户方请求的情况下立即发送到来的消息。"

  为了展示XMLSocket的使用方法,我构建了一个简单的应用程式:一个Flash数据库前端(见图1)。这对于使用查询工具的用户是很熟悉的,因为他实现了常用设计:屏幕提供了认证信息字段,更有一个字段用于输入要被传递到数据库的SQL命令。虽然不可能任何人都会用Flash构建一个完整功能的数据库查询工具,但是在本示例中所用的方法能够为实现任何特定的需要而加以定制。

  

 

  图1.连接GUI:该图像显示一个在Flash中构建的数据库前端。

 

  二、 基本原则

  实际的数据库操作是通过一个后端Java应用程式(在Flash帮助中称为"daemon")实现的,他经由JDBC(Java数据库连接)连接到数据库。我选择了Java是因为他跨平台并且还因为他的语法易于为ActionScript研发者们所理解。一个基于.NET的后端在概念上看起来和此相似。

  就算您不知道Java,假如您有一些使用ActionScript的经验,那么您应该毫无问题地理解本文。假如您是个Java或.NET程式员而没有深厚的Flash经验,那么我也希望本文能提供一些信息来帮助您使用熟悉的概念构建您的数据库连接框架。

  注意 为试验本文程式您需要:

   Flash MX 2004 或Flash 8(专业版)

   Java IDE(我使用的是Eclipse 3.0)

   Microsoft SQL Server 2000 driver for JDBC

   SQL Server 2000

  Java后端和Flash前端将通过套接字通讯。在Java中,套接字分为服务器套接字(听取并响应到来的请求)和客户套接字(把请求发送到服务器套接字)两大类。有关Java套接字的完整讨论已超出本文的范围,因此假如您对他们不熟悉的话,请参考网上其他资源;对于本文目的来说,把套接字当作是两个应用程式之间通过网络的数字连接已足够了。

  请注意,Flash仅仅支持"客户套接字"-他能连接到一个服务器,但是不担当到其他客户套接字的服务器,并且是在XMLSocket类中实现的。

  XMLSocket有一些限制:

   仅有可能连接到大于或等于1024的TCP端口;

   默认情况下,安全约束会禁止连接到一个运行于不同域上的服务器应用程式(而不是SWF文档)。这个默认行为能够通过重载来解决,详见Flash参考文档。

  为使得通讯具备意义,这两个应用程式必须使用一互相都能理解的协议(在本文情况中,我们基于XML):一个以0为终结符的XML文档被Flash发送到后端应用程式并且执行一定操作(在我们的情况中是数据库存取)。

  在我们的查询工具情况下,在数据库上执行一个命令是个两步的过程:首先,使用提供的凭证连接到数据库。然后,假如连接成功,发送和执行该命令(作为SQL语句)。由于我构建的查询应用程式具备的特点(一个会话可能包括许多事务)连同我想在Java和Flash之间构建一个更复杂一些的通讯协议,所以我选择了这种两步过程。然而,有可能把认证和执行结合到一个步骤中-发送到Java应用程式的来自Flash的消息只需简单地包括认证信息和命令;然后,Java后端将返回该SQL命令的输出(或,在连接或执行失败情况下,对应一条错误消息)。

  为了实现到一个SQL Server数据库的认证,需要提供下列信息:

   数据库服务器的IP地址;

   数据库登录和口令;

   数据库名;

   该Java应用程式的IP地址或DNS名(他能够和数据库IP名字相同,也能够不同)。

  一旦该Java应用程式检测到一个连接尝试,他将尽量分析他所收到的XML消息。假如他是一条'open connection'消息,该应用程式将从数据库服务器中提取IP地址、登录、口令和数据库名;他将尝试打开一个到数据库的JDBC连接;假如成功,他将把一条XML消息和唯一的连接句柄返回到Flash前端。他还将把认证信息和连接数字(一个"句柄")添加到一内部的连接集合上。

 

 

 

 

 

期刊论文服务

合作期刊
学报期刊
 
获奖证书办理
本站已改版成新站 课件115学培吧http://www.kj115.com
免费FLASH教程之三(含实例教程)内容导航
为Flash建搜索内容索引 Flash广告播放器研发 Flash引领互动动画潮流 Flash趣味鼠标特效大作战
Flash MX 2004滚动文本框的两种做法 给Flash文件添加历史记录 Flash中的常见术语(详解) 用笛卡尔公式画出的一颗心状图
播放器拖动进度条制作 水滴效果动画,Flash制作中的AS问题 中秋寄相思 自制Flash贺卡 用SWiSHmax轻松制作精彩Flash片头
用autocad制作一个量角器_autocad教程 Flash百叶窗制作教程 Flash制作实用别致的导航菜单 Flash实用技巧之音乐时间显示篇
Flash中的电影艺术之镜头技巧教程
Flash AS游戏教程:人物及控制 PS+FLASH制作马赛克效果 如何在论坛中,链接自已的FLASH动画呢!
FLASH中的抛运动中的竖直上抛运动 鼠标感应花儿转动效果 FLASH效果篇:闪光效果 自己动手制作手机Flash主题动画
晨雾蒙蒙动画效果,Flash制作方法 Flash制作简单MP3播放器 Flash制作滚动广告图片效果 Flash MX动画制作实例教程-文字处理-设置段落属性
电闪雷鸣、小雨纷飞的效果,Flash制作方法 Flash实现用鼠标调整窗口的大小 AS3学习源码--打气球 关于主动画中load动画和动态文本的共同运用问题
关于倒计时程序的准确性解决方法之一 Flash加载外部文件的方法与技巧集合 Tween类:图片缓动浏览效果 FLASH中加载外部音乐代码&部分难找AS教程
Flash与Java Servlet结合实现网上对战 用AS3实再FLASH游戏的上下左右移动 FLASH中加载外部音乐代码 Flash动态文本框中加载HTML格式文本
Flash制作环绕的立体图片效果动画 FLASH CS3中的FLA形式组件制作教程 酷!Flash聊天室的实现 更多相关内容总目录(200个)》》》
国家信息产业部备案专号:鄂ICP08005724返回顶部
本站推荐最佳分辨率:1024X768在线咨询台
声明:我站除课件制作动画制作培训以外,所有内容均属于免费资源。本站部分资源来自于网络,由本站收集整理,如有侵权请联系本站管理(QQ444860709 手机13339817386),我站会在三个工作日内处理。